package com.weilive.core.utils;

import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.apache.commons.lang.math.RandomUtils;

import com.alibaba.fastjson.JSONObject;

public class Utils {
	public static List<Integer> returnList(String str, String sym) {
		List<Integer> list = new ArrayList<Integer>();
		if (StringUtils.isNull(str)) {
			return list;
		}
		String[] s = str.split(sym);
		for (String v : s) {
			list.add(Integer.parseInt(v));
		}
		return list;
	}

	public static String listConvert2String(List<String> list, String sym) {
		if (list.isEmpty()) {
			return "";
		}
		StringBuilder sb = new StringBuilder();
		for (String v : list) {
			sb.append(v).append(sym);
		}
		return sb.substring(0, sb.length() - 1);
	}

	public static int isFans(boolean isExist) {
		return isExist ? 1 : 0;
	}

	public static int parseInt(String value) {
		try {
			return Integer.parseInt(value);
		} catch (Exception e) {
		}
		return 0;
	}

	public static long parseLong(String value) {
		try {
			return Long.parseLong(value);
		} catch (Exception e) {
		}
		return 0L;
	}

	public static String parseString(Object value, String defaultValue) {
		if (value == null) {
			return defaultValue;
		}
		return value.toString();
	}

	/**
	 * 获取字符串的长度，中文占一个字符,英文数字占半个字符
	 *
	 * @param value
	 *            指定的字符串
	 * @return 字符串的长度
	 */
	public static int length(String value) {
		double valueLength = 0;
		String chinese = "[\u4e00-\u9fa5]";
		// 获取字段值的长度，如果含中文字符，则每个中文字符长度为2，否则为1
		for (int i = 0; i < value.length(); i++) {
			// 获取一个字符
			String temp = value.substring(i, i + 1);
			// 判断是否为中文字符
			if (temp.matches(chinese)) {
				// 中文字符长度为2
				valueLength += 2;
			} else {
				// 其他字符长度为1
				valueLength += 1;
			}
		}
		// 进位取整
		return (int) Math.ceil(valueLength);
	}

	public static int randomInt(int rand, boolean max) {
		if (max) {
			return RandomUtils.nextInt(rand + 1);
		}
		return RandomUtils.nextInt(rand);
	}

	public static String randomUID() {
		return UUID.randomUUID().toString().replace("-", "").toLowerCase();
	}

	public static long decoderUserId(String input) {
		if (StringUtils.isNull(input)) {
			return 0L;
		}
		try {
			String[] strs = input.split(";");

			JSONObject obj = new JSONObject();

			for (String str : strs) {
				String[] s = str.split("\\|");

				String key = s[0];
				String value = s[1];

				SerializedPhpParser serializedPhpParser = new SerializedPhpParser(value);
				Object result = serializedPhpParser.parse();

				obj.put(key, result.toString());
			}

			return obj.getLong("userId");
		} catch (Exception e) {
		}
		return 0L;
	}

	/**
	 * 用户呢称检测
	 * 
	 * @param value
	 * @return
	 */
	public static boolean checkCharset(String userName) {
		if (!Charset.forName("UTF-8").newEncoder().canEncode(userName)) {
			// 如果为空直接返回false
			return false;
		}
		// 长度限制
		return true;
	}

	public static void main(String[] args) {
		System.out.println("是1是1是1".length());
	}

}
